//package com.ruoyi.common.utils.websocket.client;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.web.socket.CloseStatus;
//import org.springframework.web.socket.TextMessage;
//import org.springframework.web.socket.WebSocketSession;
//import org.springframework.web.socket.client.standard.StandardWebSocketClient;
//import org.springframework.web.socket.handler.TextWebSocketHandler;
//
//import java.util.concurrent.atomic.AtomicBoolean;
//
//@Slf4j
//@Configuration
//@EnableScheduling
//public class WebSocketClientConfig {
//
//    private String webSocketUrl = "ws://127.0.0.1:8666/websocket/0";
//
//    private final StandardWebSocketClient webSocketClient = new StandardWebSocketClient();
//    private final AtomicBoolean connected = new AtomicBoolean(false);
//
//    @Bean
//    public TextWebSocketHandler webSocketHandler() {
//        return new TextWebSocketHandler() {
//            @Override
//            public void afterConnectionEstablished(WebSocketSession session) throws Exception {
//                connected.set(true);
//                log.info("连接成功");
//                // 在这里处理连接建立后的逻辑
//            }
//
//            @Override
//            protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
//                log.info("收到服务器消息={}",message);
//                // 在这里处理接收到的消息
//            }
//
//            @Override
//            public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
//                connected.set(false);
//                log.info("退出连接");
//                // 可以选择在这里立即触发重试，或者等待定时任务
//            }
//        };
//    }
//
//    @Scheduled(fixedDelay = 5000) // 每5秒尝试一次重连
//    public void reconnectIfNecessary() {
//        if (!connected.get()) {
//            try {
//                log.info("尝试重新连接到 WebSocket 服务器...");
//                webSocketClient.doHandshake(webSocketHandler(), webSocketUrl);
//            } catch (Exception e) {
//                log.error("无法重新连接到 WebSocket 服务器: " + e.getMessage());
//            }
//        }
//    }
//}